package com.atguigu;

/**
 * 静态内部类完成， 推荐使用
 *
 * @author melo
 */
public class Singleton07 {

    private static volatile Singleton07 instance;

    /**
     * 构造器私有化
     */
    private Singleton07() {

    }

    /**
     * 写一个静态内部类,该类中有一个静态属性Singleton
     */
    private static class SingletonInstance {
        private static final Singleton07 INSTANCE = new Singleton07();
    }

    /**
     * 提供一个静态的公有方法，直接返回SingletonInstance.INSTANCE
     *
     * @return 单例对象
     */
    public static synchronized Singleton07 getInstance() {
        return SingletonInstance.INSTANCE;
    }
}
